#!/usr/bin/python3
# -*- coding:utf-8 -*-
#######################################################
# Author: liangliangSu
# Created Time: 2024-08-17 10:24
# Email: sll917@outlook.com
# Version: V1.0
# File Name: 03_机器学习-标准差.py
#######################################################
#什么是标准差？
#标准差（Standard Deviation，又常称均方差）是一个数字，描述值的离散程度。
#低标准偏差表示大多数数字接近均值（平均值）。
#高标准偏差表示这些值分布在更宽的范围内。
#例如：这次我们已经登记了 7 辆车的速度：
#speed = [86,87,88,86,87,85,86]
#标准差是：
#0.9
#意味着大多数值在平均值的 0.9 范围内，即 86.4。
#让我们对范围更广的数字集合进行处理：
#speed = [32,111,138,28,59,77,97]
#标准差是：
#37.85
#这意味着大多数值都在平均值（平均值为 77.4）的 37.85 范围内。
#如您所见，较高的标准偏差表示这些值分布在较宽的范围内。
#NumPy 模块有一种计算标准差的方法：
#请使用 NumPy std() 方法查找标准差：
print('(1-1)*** ***')
import numpy
speed = [86,87,88,86,87,85,86]
x = numpy.std(speed)
print(x)

print('(1-2)*** ***')
import numpy
speed = [32,111,138,28,59,77,97]
x = numpy.std(speed)
print(x)

#方差
#方差是另一种数字，指示值的分散程度。
#实际上，如果采用方差的平方根，则会得到标准差！
#或反之，如果将标准偏差乘以自身，则会得到方差！
#如需计算方差，您必须执行以下操作：
#1. 求均值：
#(32+111+138+28+59+77+97) / 7 = 77.4
#2. 对于每个值：找到与平均值的差：
# 32 - 77.4 = -45.4
#111 - 77.4 =  33.6
#138 - 77.4 =  60.6
# 28 - 77.4 = -49.4
# 59 - 77.4 = -18.4
# 77 - 77.4 = - 0.4
# 97 - 77.4 =  19.6
#3. 对于每个差异：找到平方值：
#(-45.4)2 = 2061.16
# (33.6)2 = 1128.96
# (60.6)2 = 3672.36
#(-49.4)2 = 2440.36
#(-18.4)2 =  338.56
#(- 0.4)2 =    0.16
# (19.6)2 =  384.16
#4. 方差是这些平方差的平均值：
#(2061.16+1128.96+3672.36+2440.36+338.56+0.16+384.16) / 7 = 1432.2
#幸运的是，NumPy 有一种计算方差的方法：
#使用 NumPy var() 方法确定方差：
print('(2)*** ***')
import numpy
speed = [32,111,138,28,59,77,97]
x = numpy.var(speed)
print(x)

#标准差
#如我们所知，计算标准差的公式是方差的平方根：
#√ 1432.25 = 37.85
#或者，如上例所示，使用 NumPy 计算标准差：
#请使用 NumPy std() 方法查找标准差：
print('(3)*** ***')
import numpy
speed = [32,111,138,28,59,77,97]
x = numpy.std(speed)
print(x)

#符号
#标准差通常用 Sigma 符号表示：σ
#方差通常由 Sigma Square 符号 σ2 表示
#章节总结
#标准差和方差是机器学习中经常使用的术语，因此了解如何获取它们以及它们背后的概念非常重要。
